Formal Verification of Asymptotic Complexity Bounds for OCaml Programs

نویسنده

  • Arthur Charguéraud
چکیده

Program verification covers a wide range of techniques, frameworks and tools, interested in proving various properties about real world programs. Beyond basic safety properties (e.g. memory safety), program verification can be used to establish full functional correctness, meaning that, for every input, the program always behaves as expected. Yet, full functional correctness does not capture all the desired properties of a program. In particular, it does not give any form of guarantee on the execution time of the program. How useful would a mechanically-correct program be, if it does not delivers its output within reasonable amount of time? Estimating the real-life execution time of a program can be quite difficult given the complexity and underspecification of modern hardware, operating systems or even compilers. Without going that far, researchers have investigated the possibility of formally establishing asymptotic complexity bounds for programs. For example, some tools, such as RAML by Hoffmann and Hofmann [10], are capable of automatically inferring asymptotic bounds, but only for restricted classes of programs. Other lines of work (Danielsson’s Thunk library [7], Charguéraud’s CFML [4,3]) allow to establish execution cost bounds for arbitrary complex programs, thanks to the support of a proof assistant. However, they do not support reasoning on asymptotic complexity using Landau’s big-O notation.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Fistful of Dollars: Formalizing Asymptotic Complexity Claims via Deductive Program Verification

We present a framework for simultaneously verifying the functional correctness and the worst-case asymptotic time complexity of higher-order imperative programs. We build on top of Separation Logic with Time Credits, embedded in an interactive proof assistant. We formalize the O notation, which is key to enabling modular specifications and proofs. We cover the subtleties of the multivariate cas...

متن کامل

Why3 - Where Programs Meet Provers

We present Why3, a tool for deductive program verification, and WhyML, its programming and specification language. WhyML is a first-order language with polymorphic types, pattern matching, and inductive predicates. Programs can make use of record types with mutable fields, type invariants, and ghost code. Verification conditions are discharged by Why3 with the help of various existing automated...

متن کامل

Formal Verification of Hardware Synthesis

We report on the implementation of a certified compiler for a high-level hardware description language (HDL) called Fe-Si (FEatherweight SynthesIs). Fe-Si is a simplified version of Bluespec, an HDL based on a notion of guarded atomic actions. Fe-Si is defined as a dependently typed deep embedding in Coq. The target language of the compiler corresponds to a synthesisable subset of Verilog or VH...

متن کامل

A Separation Logic Framework for Imperative HOL

We provide a framework for separation-logic based correctness proofs of Imperative HOL programs. Our framework comes with a set of proof methods to automate canonical tasks such as verification condition generation and frame inference. Moreover, we provide a set of examples that show the applicability of our framework. The examples include algorithms on lists, hash-tables, and union-find trees....

متن کامل

Perturbation Analysis in Verification of Discrete-Time Markov Chains

Perturbation analysis in probabilistic verification addresses the robustness and sensitivity problem for verification of stochastic models against qualitative and quantitative properties. We identify two types of perturbation bounds, namely non-asymptotic bounds and asymptotic bounds. Non-asymptotic bounds are exact, pointwise bounds that quantify the upper and lower bounds of the verification ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015